* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html {
  height: 100%;
  font: 14px menu;
  background: #eee;
}
body {
  height: 100%;
  font-size: 1em;
}
h1 {
  font-size: 1.5rem;
}
h1, h2 {
  margin-top: .5em;
  margin-bottom: .5em;
}
button {
  padding: 0 .5rem;
  font-size: 1rem;
}
a {
  color: dodgerblue;
}
input[disabled] ~ * {
  color: gray;
}
hr {
  border: none;
  border-top: 1px solid darkgray;
}
textarea {
  display: block;
  width: 100%;
}

.pull-left {
  float: left;
}
.pull-right {
  float: right;
}
.inline-block {
  display: inline-block;
}
.flex {
  display: flex;
}
.flex-col {
  flex-direction: column;
}
.flex-auto {
  flex: auto;
  .flex-col > & {
    height: 0;
  }
}
.pos-rel {
  position: relative;
}
.mr-1 {
  margin-right: .5em;
}
.mt-1 {
  margin-top: .5em;
}
.mb-1 {
  margin-bottom: .5em;
}
.mb-2 {
  margin-bottom: 1em;
}
.px-2 {
  margin-left: 1em;
  margin-right: 1em;
}
.h-100 {
  height: 100%;
}
.w-1 {
  width: 4em;
}
.fixed-full {
  position: fixed;
}
.abs-full {
  position: absolute;
}
.fixed-full,
.abs-full {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.ellipsis {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.dropdown {
  position: relative;
  display: inline-block;
}
.dropdown:not(.open) .dropdown-menu {
  display: none;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  right: 0;
  width: 13rem;
  margin-top: .4rem;
  padding: 1rem;
  background: #f8f8f8;
  border-radius: .3rem;
  box-shadow: .1rem .2rem .2rem gray;
  z-index: 10;
}

.main {
  position: relative;
  max-width: 65rem;
  height: 100%;
  margin: 0 auto;
}
aside {
  position: absolute;
  background: #fafafa;
  top: 3rem;
  left: 0;
  width: 14rem;
  padding: 1rem 1rem 0;
  border: 1px solid darkgray;
  border-right: none;
  border-radius: 1rem 0 0 1rem;
  text-align: right;
}
aside img {
  width: 5rem;
}
.sidemenu > a {
  display: block;
  line-height: 2.5rem;
  font-size: 1rem;
  font-weight: bold;
  text-decoration: none;
  color: gray;
}
.sidemenu > a.active,
.sidemenu > a:hover {
  color: black;
}
.content {
  position: relative;
  height: 100%;
  margin-left: 14rem;
  padding: 1.2rem;
  background: white;
  border-left: 1px solid darkgray;
  border-right: 1px solid darkgray;
  overflow-y: auto;
}
.content > header {
  height: 2rem;
  line-height: 2rem;
  padding: 0 .5rem;
  border-bottom: 1px solid darkgray;
}
.backdrop,
.scripts {
  position: absolute;
  top: 2rem;
  left: 0;
  right: 0;
  bottom: 0;
}
.scripts {
  overflow-y: auto;
}
.backdrop {
  text-align: center;
  color: gray;
  z-index: 9;
}
.backdrop > *,
.backdrop::after {
  display: inline-block;
  vertical-align: middle;
  font-size: 2rem;
}
.backdrop::after {
  content: ' ';
  width: 0;
  height: 100%;
}
.mask {
  background: rgba(0,0,0,.08);
  /*transition: opacity 1s;*/
}
#currentLang {
  color: green;
  font-weight: bold;
}
.no-pad {
  padding: 0;
}
section {
  position: relative;
  margin-top: 2rem;
  padding: 1.2rem .8rem .8rem;
  border: none;
  border-top: 1px solid silver;
  > h3 {
    position: absolute;
    padding: 0 .2rem;
    top: -.6em;
    left: .8rem;
    line-height: 1;
    background: white;
  }
  > h4 {
    margin-bottom: .3rem;
  }
  > p {
    margin-bottom: .3rem;
  }
}
code {
  background: #F7E999;
}
.frame-block {
  padding: .5rem;
}
.options-panel label {
  display: block;
}
.editor-code,
.editor-code .CodeMirror {
  height: 100%;
  /* Use `Courier New` to ensure `&nbsp;` has the same width as an original space. */
  font-family: Courier New, Courier, monospace;
}
.confirm-url {
  float: left;
  max-width: 50%;
}
.confirm-msg {
  text-align: right;
}
.script {
  position: relative;
  margin: .6rem;
  padding: .6rem;
  border: 1px solid #ccc;
  border-radius: .3rem;
  transition: transform .5s;
}
.script:hover {
  border-color: darkgray;
}
.script.disabled {
  background: lightgray;
  color: gray;
}
.script .pull-right {
  margin-left: 1em;
}
.script-info {
  margin-left: 3.5rem;
  line-height: 1.5;
  align-items: center;
  > * {
    margin-right: .8rem;
  }
  .icon {
    display: block;
  }
}
.script-icon {
  position: absolute;
  top: .8rem;
  width: 3rem;
  height: 3rem;
}
.script-name {
  font-weight: bold;
  font-size: 1rem;
}
.script-author {
  max-width: 30%;
}
.script-desc {
  margin-left: 3.5rem;
  line-height: 2rem;
}
.script-desc::after {
  content: "\200b";
}
.disabled .script-icon {
  filter: grayscale(.5);
}
.disabled .script-name {
  color: blueviolet;
}
.dragging-placeholder {
  visibility: hidden;
}
.dragging {
  position: fixed;
  margin: 0;
  background: wheat;
  z-index: 9;
}
.edit {
  background: #eee;
}
.feature {
  &-text {
    position: relative;
    &::after {
      .feature & {
        content: '';
        display: block;
        position: absolute;
        width: 6px;
        height: 6px;
        top: -.1rem;
        left: 100%;
        border-radius: 50%;
        margin-left: .1rem;
        background: red;
      }
    }
  }
}
.icon {
  width: 1rem;
  height: 1rem;
  vertical-align: middle;
}
svg path {
  fill: currentColor;
}

.tab-settings {
  textarea {
    height: 10em;
  }
}

.CodeMirror-foldmarker {
  color: blue;
  text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
  font-family: arial;
  line-height: .3;
  cursor: pointer;
}
.CodeMirror-foldgutter {
  width: .7em;
}
.CodeMirror-foldgutter-open,
.CodeMirror-foldgutter-folded {
  color: #555;
  cursor: pointer;
}
.CodeMirror-foldgutter-open:after {
  content: "\25BE";
}
.CodeMirror-foldgutter-folded:after {
  content: "\25B8";
}
